// pages/more-movie/more-movie.js
import {
  toPromise
} from '../../utils/index'
const {
  GbaseUrl
} = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    movies: [],
    _type: '',
    _start:0
  },
 

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: async function (options) {
    this.data._type = options.type
    const params = {
      url: `${GbaseUrl}/${options.type}`,
      method: "get",
      data: {
        start: this.data._start,
        count: 12
      }
    }

    let movies = (await toPromise(wx.request)(params)).data.subjects
    this.setData({
      movies
    })

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    let title = '电影'
    switch (this.data._type) {
      case 'in_theaters':
        title = '正在热映'
        break;
      case 'coming_soon':
        title = '即将上映'
        break;
      case 'top250':
        title = '豆瓣Top250'
        break;
    }
    wx.setNavigationBarTitle({ //建议在onReady中调用
      title,
    })
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: async function () {
    console.log("xiala")
    const params = {
      url: `${GbaseUrl}/${this.data._type}`,
      method: "get",
      data: {
        start: this.data._start,
        count: 12
      }
    }
    let movies = (await toPromise(wx.request)(params)).data.subjects
    this.setData({
      movies
    })
    wx.stopPullDownRefresh()

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: async function () {
    console.log("上拉触底")
    const params = {
      url: `${GbaseUrl}/${this.data._type}`,
      method: "get",
      data: {
        start: this.data._start+12,
        count: 12
      }
    }
    
    let movies = (await toPromise(wx.request)(params)).data.subjects
    this.setData({
      movies: [...this.data.movies, ...movies], //使用解构赋值进行数组合并
      // movies:this.data.movies.concat(movies)     //concat() 方法用于连接两个或多个数组。 该方法不会改变现有的数组，而仅仅会返回被连接数组的一个副本
      _start:this.data._start+12  //当你的start超过其数量总数时,将获取不到数据
    })
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})